package com.fau.mm.service;

import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.mm.entity.MedicalAdmin;
import com.fau.mm.entity.MedicalCity;
import com.fau.mm.entity.MedicalDistrict;
import com.fau.mm.entity.MedicalEnterpriseOutside;
import com.fau.mm.entity.MedicalKeyValue;
import com.fau.mm.entity.MedicalMediaInfo;
import com.fau.mm.entity.MedicalMediaInfoCosts;
import com.fau.mm.entity.MedicalMediaPlacement;
import com.fau.mm.entity.MedicalMedicine;
import com.fau.mm.entity.MedicalProvince;
import com.fau.mm.util.Page;

public interface IMediaManagerService {

	/**
	 * @desc 查询媒体信息列表
	 * @param map
	 * @param info
	 * @return Page
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:27:53
	 */
	public Page findAllMediaInfo(Map<String, Object> map, MedicalMediaInfo info);
	
	/**
	 * @desc 保存媒体信息
	 * @param info
	 * @return boolean
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:28:29
	 */
	public boolean save(MedicalMediaInfo info, MedicalAdmin admin);
	
	/**
	 * @desc 保存编辑的媒体信息
	 * @param info
	 * @return boolean
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:29:05
	 */
	public boolean saveEdit(MedicalMediaInfo info, MedicalAdmin admin);
	
	/**
	 * @desc 删除媒体基本信息
	 * @param info
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:29:52
	 */
	public boolean delete(MedicalMediaInfo info);
	
	/**
	 * @desc 导出当前页媒体信息
	 * @param ids
	 * @return Workbook
	 * @author dangjh
	 * @datetime 2014年10月20日,下午12:18:38
	 */
	public Workbook currentPage(String ids) throws Exception;
	
	/**
	 * @desc 导出所有媒体信息
	 * @return Workbook
	 * @author dangjh
	 * @datetime 2014年10月20日,下午2:19:35
	 */
	public Workbook allPage(MedicalAdmin admin) throws Exception;
	
	/**------------------------------------------------------------------------
	 * @desc 查询媒体投放信息列表
	 * @param map
	 * @param info
	 * @return Page
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:27:53
	 */
	public Page findAllMediaPlacement(Map<String, Object> map, MedicalMediaPlacement place, MedicalAdmin admin);
	
	/**
	 * @desc 保存媒体投放信息
	 * @param info
	 * @return boolean
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:28:29
	 */
	public boolean savePlace(MedicalMediaPlacement place);
	
	/**
	 * @desc 保存编辑的媒体投放信息
	 * @param info
	 * @return boolean
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:29:05
	 */
	public boolean saveEditPlace(MedicalMediaPlacement place, MedicalAdmin admin);
	
	/**
	 * @desc 删除媒体投放基本信息
	 * @param info
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:29:52
	 */
	public void deletePlace(MedicalMediaPlacement place);
	
	/**
	 * @desc 导出当前页媒体投放信息
	 * @param ids
	 * @return Workbook
	 * @author dangjh
	 * @datetime 2014年10月20日,下午12:18:38
	 */
	public Workbook currentPagePlace(String ids) throws Exception;
	
	/**
	 * @desc 导出所有媒体投放信息
	 * @return Workbook
	 * @author dangjh
	 * @datetime 2014年10月20日,下午2:19:35
	 */
	public Workbook allPagePlace(MedicalAdmin admin) throws Exception;
	
	/**
	 * @desc 查询所有产品
	 * @param eid
	 * @return List<MedicalMedicine>
	 * @author dangjh
	 * @datetime 2014年11月7日,下午5:39:32
	 */
	public List<MedicalMedicine> findAllMedicineByEid(String eid);
	
	/**
	 * @desc 查询所有媒体信息
	 * @param eid
	 * @return List<MedicalMediaInfo>
	 * @author dangjh
	 * @datetime 2014年11月7日,下午5:40:07
	 */
	public List<MedicalMediaInfo> findAllMediaByEid(String eid);
	
	/**
	 * @desc 查询字典表播放状态 
	 * @param eid
	 * @param type
	 * @return List<MedicalKeyValue>
	 * @author dangjh
	 * @datetime 2014年11月8日,下午6:26:51
	 */
	public List<MedicalKeyValue> getKeyValue(String eid, String type);
	
	/**------------------------------------------------------------------------
	 * @desc 查询媒体进线成本信息列表
	 * @param map
	 * @param info
	 * @return Page
	 * @author dangjh
	 * @datetime 2014年11月4日,下午1:27:53
	 */
	public Page findAllMediaInfoCost(Map<String, Object> map, MedicalMediaInfoCosts cost, MedicalAdmin admin);
	
	/**
	 * @desc 导出当前页媒体进线成本信息
	 * @param ids
	 * @return Workbook
	 * @author dangjh
	 * @datetime 2014年10月20日,下午12:18:38
	 */
	public Workbook currentPageCost(String ids) throws Exception;
	
	/**
	 * @desc 导出所有媒体进线成本信息
	 * @return Workbook
	 * @author dangjh
	 * @datetime 2014年10月20日,下午2:19:35
	 */
	public Workbook allPageCost(MedicalAdmin admin) throws Exception;
	
	/**
	 * @desc 查询省份集合
	 * @return List<MedicalProvince>
	 * @author kangyj
	 * @datetime 2014年11月8日,下午6:02:16
	 */
	public List<MedicalProvince> findProvinceList();
	
	/**
	 * @desc 通过省份查询城市集合
	 * @param pId 省份
	 * @return List<MedicalCity>
	 * @author kangyj
	 * @datetime 2014年11月8日,下午6:01:51
	 */
	public List<MedicalCity> findCityListByPid(String pId);
	
	/**
	 * @desc 通过城市查地区集合
	 * @param cId 城市id
	 * @return List<MedicalDistrict>
	 * @author kangyj
	 * @datetime 2014年11月8日,下午6:01:22
	 */
	public List<MedicalDistrict> findDistrictListByCid(String cId); 
	
	/**
	 * @desc 获得企业拥有的外线号码
	 * @return List<MedicalEnterpriseOutside>
	 * @author liy
	 * @datetime 2014年12月24日,下午2:05:33
	 */
	public List<MedicalEnterpriseOutside> findOutline();
}
